<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
<title>DynamoRIO API: _dr_mcontext_t Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">DynamoRIO API
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('struct__dr__mcontext__t.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">_dr_mcontext_t Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;dr_defines.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a11c0a7fef86b59511a30b31718e3d5e1"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a11c0a7fef86b59511a30b31718e3d5e1">size</a></td></tr>
<tr class="memitem:a3aa9824f7e23cec6552859cc29af4b68"><td class="memItemLeft" align="right" valign="top"><a class="el" href="dr__defines_8h.html#af0434595b47158e7512c2bf5f0e43ae4">dr_mcontext_flags_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a3aa9824f7e23cec6552859cc29af4b68">flags</a></td></tr>
<tr class="memitem:a8a377b44eef646512a207d59e102a50d"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a8d81d077a22c716935556a1b6a68eaf4"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#aefb3d18d710d1800b353da6bc2ed9e03">xdi</a></td></tr>
<tr class="memitem:a62a05a5c152135d34e4ef7f8e474d047"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a472febe4a88d0468ed9af1b311438632">rdi</a></td></tr>
<tr class="memitem:a8a377b44eef646512a207d59e102a50d"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:a61213abd5723e0b4667a487dffc94156"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a709a32032d360a8d9e834af8e6fd7f53"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a69b790dd2937e0a437c5e40abf0be16d">xsi</a></td></tr>
<tr class="memitem:a01e9d3c6fa825926afd782da185f3dc4"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#ace665c57d6303e691aa002a1562353a2">rsi</a></td></tr>
<tr class="memitem:a61213abd5723e0b4667a487dffc94156"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:a1cb969bf00d0172084d67743ccb32dd9"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a6f14af9cfa7cd6c295a3540f3dc73d76"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#ab9c51f9a4c65db9871ea30cd6eef047c">xbp</a></td></tr>
<tr class="memitem:af4bab8913de7458141c7cd5de2e1633f"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a8bd8b622be8d0b58c2b4b488afeba6cf">rbp</a></td></tr>
<tr class="memitem:a1cb969bf00d0172084d67743ccb32dd9"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:acf41b6566a97c669eedb9c0ead2d0ace"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:ac32f3cc3d9d59f7c2e5da7a41a11b7ad"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a4e1c58a65a0b7aa6c55b5f18a2e2fd34">xsp</a></td></tr>
<tr class="memitem:add0f6355d80af3ac0a34f80bdc63194b"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a816520100cb0e63cf112090ea77a724a">rsp</a></td></tr>
<tr class="memitem:acf41b6566a97c669eedb9c0ead2d0ace"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:a9a27b244e5b90f1d4f84c3515eb661a3"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a3295816e4d32081475554ec3a19afc9f"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#af2c15423b0548d552acd8b18a6bd4e22">xbx</a></td></tr>
<tr class="memitem:a5510f27dceb3da2c379413d28e0b4731"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#ab456f0e6d30c25184e957d74fbe480d5">rbx</a></td></tr>
<tr class="memitem:a9a27b244e5b90f1d4f84c3515eb661a3"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:aea8957387850e8b959cc665fc365082c"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:afac46844971f488d277ed5894ddf4c07"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#ada2bad3536f735622553d0e15300cf02">xdx</a></td></tr>
<tr class="memitem:ab7aa38a850248c6f4435739ea53a74f0"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a2138d7cddb17fbbbddaeaba3513c178f">rdx</a></td></tr>
<tr class="memitem:aea8957387850e8b959cc665fc365082c"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:aead8cc4fc3211fd6ec89539f2211d515"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:ae6a461fcb2cfb8ef936340f550ac083d"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a3314fc0fc56795d387ac2fe95e318160">xcx</a></td></tr>
<tr class="memitem:abe34351e1fa6bcd0b8d20e4d4caa2b47"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a65f19f47b25f7422c9b57ff34b2514bf">rcx</a></td></tr>
<tr class="memitem:aead8cc4fc3211fd6ec89539f2211d515"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:a6e75770db197334b48435453bb4207de"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a5fb4d29ed5da0eca0ed72d7dd853a6e9"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#ad52fdbcbc19ef93f6eb2ef3b5adc913d">xax</a></td></tr>
<tr class="memitem:a8625dde21be080615dc6fd4430e208e3"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a5c03392a39acf10351900335b57bc0bd">rax</a></td></tr>
<tr class="memitem:a6e75770db197334b48435453bb4207de"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:acf691b7394d321fe92eca8c9dcda49c6"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#acf691b7394d321fe92eca8c9dcda49c6">r8</a></td></tr>
<tr class="memitem:aff49e00ee541f5e751cb4ff3e3993263"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#aff49e00ee541f5e751cb4ff3e3993263">r9</a></td></tr>
<tr class="memitem:a0b2909daf989463409301eb89d50d1b1"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a0b2909daf989463409301eb89d50d1b1">r10</a></td></tr>
<tr class="memitem:a39f38b0f541d2fa58de112b34bacb35b"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a39f38b0f541d2fa58de112b34bacb35b">r11</a></td></tr>
<tr class="memitem:a347129f935b5eaedf522eca6485887b2"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a347129f935b5eaedf522eca6485887b2">r12</a></td></tr>
<tr class="memitem:a6bbfcb5f8eb174e5c766a33cf77a602a"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a6bbfcb5f8eb174e5c766a33cf77a602a">r13</a></td></tr>
<tr class="memitem:ab9f940e92d49af1f689730516bcdc23c"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#ab9f940e92d49af1f689730516bcdc23c">r14</a></td></tr>
<tr class="memitem:a9c65c1c8bb968263ab77d372a4f95dfc"><td class="memItemLeft" align="right" valign="top">reg_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a9c65c1c8bb968263ab77d372a4f95dfc">r15</a></td></tr>
<tr class="memitem:a40a8529c32af1cf1d6b3373980ee5708"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:a89f58727a77a8e45036ac5f0bdd755da"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a54c88c6b5bee4ef96b805441e3718d4c">xflags</a></td></tr>
<tr class="memitem:a86466cb2cf6b49feed9b27658d794e56"><td class="memItemLeft" >&#160;&#160;&#160;reg_t&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a656ea7cdbb691808ae848a7981863e23">rflags</a></td></tr>
<tr class="memitem:a40a8529c32af1cf1d6b3373980ee5708"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:ad5808719f1730b1492a85f07c2eb9369"><td class="memItemLeft" >union {</td></tr>
<tr class="memitem:accacc42e2a190eeb06cd98a0f34d928c"><td class="memItemLeft" >&#160;&#160;&#160;byte *&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a740db0ec027db5080dc406c5e7127f01">xip</a></td></tr>
<tr class="memitem:ae12b1bd8e8c6bdaae5d2f92f34bd6760"><td class="memItemLeft" >&#160;&#160;&#160;byte *&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#aa3c09ba34963a7dd3ff20d42c5a253ba">pc</a></td></tr>
<tr class="memitem:a51c34a0a20d50a377cb9daf7af4bbe45"><td class="memItemLeft" >&#160;&#160;&#160;byte *&#160;&#160;&#160;<a class="el" href="struct__dr__mcontext__t.html#a8579d1ac8a046c0cb355ba55053e7047">rip</a></td></tr>
<tr class="memitem:ad5808719f1730b1492a85f07c2eb9369"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="memitem:a1f880e02bdf3fa89d5f41f25ef711899"><td class="memItemLeft" align="right" valign="top">byte&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a1f880e02bdf3fa89d5f41f25ef711899">padding</a> [<a class="el" href="dr__defines_8h.html#aaeb72915e4c71fc1fb346e9a52640e5b">PRE_XMM_PADDING</a>]</td></tr>
<tr class="memitem:a0e9f9d0e0c4b1a212a9ab6ba3a09ae37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="dr__defines_8h.html#afdb3ea3d885c7c9302dc76e7110db1d0">dr_ymm_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct__dr__mcontext__t.html#a0e9f9d0e0c4b1a212a9ab6ba3a09ae37">ymm</a> [NUM_XMM_SLOTS]</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Machine context structure. </p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a8a377b44eef646512a207d59e102a50d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rdi/edi register </p>

</div>
</div>
<a class="anchor" id="aea8957387850e8b959cc665fc365082c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rdx/edx register </p>

</div>
</div>
<a class="anchor" id="aead8cc4fc3211fd6ec89539f2211d515"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rcx/ecx register </p>

</div>
</div>
<a class="anchor" id="a6e75770db197334b48435453bb4207de"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rax/eax register </p>

</div>
</div>
<a class="anchor" id="a40a8529c32af1cf1d6b3373980ee5708"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rflags/eflags register </p>

</div>
</div>
<a class="anchor" id="ad5808719f1730b1492a85f07c2eb9369"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Anonymous union of alternative names for the program counter / instruction pointer (eip/rip). This field is not always set or read by all API routines. </p>

</div>
</div>
<a class="anchor" id="a61213abd5723e0b4667a487dffc94156"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rsi/esi register </p>

</div>
</div>
<a class="anchor" id="a1cb969bf00d0172084d67743ccb32dd9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rbp/ebp register </p>

</div>
</div>
<a class="anchor" id="acf41b6566a97c669eedb9c0ead2d0ace"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rsp/esp register </p>

</div>
</div>
<a class="anchor" id="a9a27b244e5b90f1d4f84c3515eb661a3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">union { ... } </td>
        </tr>
      </table>
</div><div class="memdoc">
<p>anonymous union of alternative names for rbx/ebx register </p>

</div>
</div>
<a class="anchor" id="a3aa9824f7e23cec6552859cc29af4b68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dr__defines_8h.html#af0434595b47158e7512c2bf5f0e43ae4">dr_mcontext_flags_t</a> _dr_mcontext_t::flags</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The valid fields of this structure. This field must be set prior to filling in the fields. For input requests (<a class="el" href="dr__ir__utils_8h.html#a91ffde2808c16e07f323c34affa72209">dr_get_mcontext()</a>), this indicates which fields should be written. Writing the multimedia fields frequently can incur a performance hit. For output requests (<a class="el" href="dr__ir__utils_8h.html#a56568d24667f5d64264d0bad398727b3">dr_set_mcontext()</a> and <a class="el" href="dr__ir__utils_8h.html#a9f612cf9d0ca2025b23d30b6f5bb0231">dr_redirect_execution()</a>), this indicates which fields will be copied to the actual context. </p>

</div>
</div>
<a class="anchor" id="a1f880e02bdf3fa89d5f41f25ef711899"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte _dr_mcontext_t::padding[<a class="el" href="dr__defines_8h.html#aaeb72915e4c71fc1fb346e9a52640e5b">PRE_XMM_PADDING</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>padding to get ymm field 32-byte aligned </p>

</div>
</div>
<a class="anchor" id="aa3c09ba34963a7dd3ff20d42c5a253ba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte* _dr_mcontext_t::pc</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent alt name for full rip/eip register </p>

</div>
</div>
<a class="anchor" id="a0b2909daf989463409301eb89d50d1b1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r10</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r10 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="a39f38b0f541d2fa58de112b34bacb35b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r11</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r11 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="a347129f935b5eaedf522eca6485887b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r12</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r12 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="a6bbfcb5f8eb174e5c766a33cf77a602a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r13</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r13 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="ab9f940e92d49af1f689730516bcdc23c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r14</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r14 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="a9c65c1c8bb968263ab77d372a4f95dfc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r15</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r15 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="acf691b7394d321fe92eca8c9dcda49c6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r8</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r8 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="aff49e00ee541f5e751cb4ff3e3993263"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::r9</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>r9 register. </p>
<dl class="section note"><dt>Note:</dt><dd>For 64-bit DR builds only. </dd></dl>

</div>
</div>
<a class="anchor" id="a5c03392a39acf10351900335b57bc0bd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rax</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rax/eax register </p>

</div>
</div>
<a class="anchor" id="a8bd8b622be8d0b58c2b4b488afeba6cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rbp</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rbp/ebp register </p>

</div>
</div>
<a class="anchor" id="ab456f0e6d30c25184e957d74fbe480d5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rbx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rbx/ebx register </p>

</div>
</div>
<a class="anchor" id="a65f19f47b25f7422c9b57ff34b2514bf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rcx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rcx/ecx register </p>

</div>
</div>
<a class="anchor" id="a472febe4a88d0468ed9af1b311438632"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rdi</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rdi/edi register </p>

</div>
</div>
<a class="anchor" id="a2138d7cddb17fbbbddaeaba3513c178f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rdx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rdx/edx register </p>

</div>
</div>
<a class="anchor" id="a656ea7cdbb691808ae848a7981863e23"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rflags</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rflags/eflags register </p>

</div>
</div>
<a class="anchor" id="a8579d1ac8a046c0cb355ba55053e7047"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte* _dr_mcontext_t::rip</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rip/eip register </p>

</div>
</div>
<a class="anchor" id="ace665c57d6303e691aa002a1562353a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rsi</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rsi/esi register </p>

</div>
</div>
<a class="anchor" id="a816520100cb0e63cf112090ea77a724a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::rsp</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-dependent name for rsp/esp register </p>

</div>
</div>
<a class="anchor" id="a11c0a7fef86b59511a30b31718e3d5e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t _dr_mcontext_t::size</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The size of this structure. This field must be set prior to filling in the fields to support forward compatibility. </p>

</div>
</div>
<a class="anchor" id="ad52fdbcbc19ef93f6eb2ef3b5adc913d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xax</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rax/eax register </p>

</div>
</div>
<a class="anchor" id="ab9c51f9a4c65db9871ea30cd6eef047c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xbp</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rbp/ebp register </p>

</div>
</div>
<a class="anchor" id="af2c15423b0548d552acd8b18a6bd4e22"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xbx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rbx/ebx register </p>

</div>
</div>
<a class="anchor" id="a3314fc0fc56795d387ac2fe95e318160"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xcx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rcx/ecx register </p>

</div>
</div>
<a class="anchor" id="aefb3d18d710d1800b353da6bc2ed9e03"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xdi</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rdi/edi register </p>

</div>
</div>
<a class="anchor" id="ada2bad3536f735622553d0e15300cf02"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xdx</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rdx/edx register </p>

</div>
</div>
<a class="anchor" id="a54c88c6b5bee4ef96b805441e3718d4c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xflags</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rflags/eflags register </p>

</div>
</div>
<a class="anchor" id="a740db0ec027db5080dc406c5e7127f01"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">byte* _dr_mcontext_t::xip</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rip/eip register </p>

</div>
</div>
<a class="anchor" id="a69b790dd2937e0a437c5e40abf0be16d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xsi</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rsi/esi register </p>

</div>
</div>
<a class="anchor" id="a4e1c58a65a0b7aa6c55b5f18a2e2fd34"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">reg_t _dr_mcontext_t::xsp</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>platform-independent name for full rsp/esp register </p>

</div>
</div>
<a class="anchor" id="a0e9f9d0e0c4b1a212a9ab6ba3a09ae37"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="dr__defines_8h.html#afdb3ea3d885c7c9302dc76e7110db1d0">dr_ymm_t</a> _dr_mcontext_t::ymm[NUM_XMM_SLOTS]</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The SSE registers xmm0-xmm5 (-xmm15 on Linux) are volatile (caller-saved) for 64-bit and WOW64, and are actually zeroed out on Windows system calls. These fields are ignored for 32-bit processes that are not WOW64, or if the underlying processor does not support SSE. Use <a class="el" href="dr__ir__utils_8h.html#a5921c4f301ea05885f305f9a30b3c0b0">dr_mcontext_xmm_fields_valid()</a> to determine whether the fields are valid.</p>
<p>When the fields are valid, on processors with AVX enabled (i.e., proc_has_feature(FEATURE_AVX) returns true), these fields will contain the full ymm register values; otherwise, the top 128 bits of each slot will be undefined. </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="dr__defines_8h.html">dr_defines.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="struct__dr__mcontext__t.html">_dr_mcontext_t</a></li>
    <li class="footer" style="float:none;text-align:center"><img border=0 src="favicon.png"> &nbsp;  DynamoRIO API version 5.0.0 --- Wed Sep 10 2014 21:36:44 &nbsp; <img border=0 src="favicon.png">
</small></address>
<!--END !GENERATE_TREEVIEW-->
</body>
</html>
